1. Field of the Invention
The invention relates generally to methods and systems in which data objects are rasterized or rendered to generate two-dimensional bitmaps that are then compressed for eventual presentation on a device such as a printer. More specifically, the invention relates to methods and systems for improving efficiency of generating such compressed bitmaps by using meta-data structures to represent data without writing to the bitmap thus reducing utilization of bitmap memory bandwidth.
2. Discussion of Related Art
In a variety of document presentation systems such as printing systems, it is common to generate a bitmap representation of each sheetside image of the document by processing a sequence of data objects. The data objects are typically initially defined in a page description language or other suitable encoding and at some point prior to writing to a bitmap are represented as regions of rectangles of pixels. Typically, the sheetside image is then generated into a bitmap memory as a two dimensional matrix of pixels representing the intended document sheetside image.
As presently practiced in the art, typical sheetside bitmap processing commences by initializing the bitmap memory to all blank (e.g., all zeros). As each data object for the sheetside image is processed, pixels in the bitmap memory are modified (written) to represent the data object appropriately positioned on the sheetside image. Eventually, when all data objects for the sheetside image have been processed, the content of the bitmap memory is compressed to generate a smaller representation of the sheetside image—the compressed bitmap. The compressed bitmap and other compressed bitmaps for other sheetside images of the job or document are often stored for later transmission to the presentation device (e.g., printer or other display devices).
As presently practiced, each data object is processed by writing it to the bitmap—either overwriting the cleared bitmap memory or overwriting data in the bitmap memory written previously by processing of other data objects. For example, an image data object may be processed generating image data in the bitmap memory. A subsequent text data object or other image data object may then be processed such that the generated pixels overlap pixels previously written in processing of the earlier image data object. The previously written pixels of the bitmap are simply overwritten by the new pixels of the later data object.
The processing described above as presently practiced in the art presents a number of performance problems. First, the bitmap memory must be set to zero or cleared of any previous pixel information as the standard starting point in processing each sheetside image. This initial clearing of the bitmap memory requires significant memory bandwidth and processor cycles to write a large volume of memory. In addition, where a sheetside image utilizes a solid background color or a background image (e.g., a watermark) covering large areas of the sheetside image, another significant volume of bitmap memory write operations are required to write the background color or image. Further, some common business applications may generate borders such as concentric rectangles or patterns around the perimeter of a sheetside image for a document again requiring a significant volume of memory write operations. Still further, when a data object represents opaque image data, or a transparency mask, the pixel data within the data object is generally copied from the data object memory into the bitmap memory generating still further memory bandwidth utilization and processing cycles. Lastly, when the sheetside image creation is complete following processing of every data object, the entire sheetside bitmap memory is read so as to generate the compressed data in the compressed bitmap representation of the sheetside bitmap memory. Thus, still further bitmap memory bandwidth utilization and processor cycles are generated.
The above exemplary problems of present techniques are further exacerbated when the bitmap memory includes a color depth such as 8 or 32 bits per pixel rather than a single bit deep binary image (e.g., black and white). Still further, in presentation of full color documents, a sheetside image is typically represented by four bitmaps—one for black and one for each of three primary colors. Still further, highlight colors and/or MICR (e.g., magnetic toner) printing applications may add still further bitmaps. These other common configurations simply multiply the above identified memory bandwidth utilization problems by the number of bitmaps and the color depth of each bitmap. The significant volume of memory operations and processor cycles to generate compressed bitmaps in accordance with present techniques can impose a significant performance bottleneck on the processing of a document to prepare it for transmission to the presentation device (e.g., transmission to a printing system to generate a printed copy of the processed document).
It is evident from the above discussion that an ongoing need exists for improving efficiency in generating compressed bitmaps such as in a printing environment.